/**
*  
* @Function 数据质量报告service 
* @ProjectName credit-data-platform 
* @PackageName com.py.credit.service    
* @FileName DataQualityService.java    
* @Date 2018年7月11日上午10:22:07
* @Author Min DongXv
* @Copyright (c) 2018, 金电联行 All Rights Reserved.   
*   
*/
package com.py.credit.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.py.credit.entity.DataQualityDetailEntity;
import com.py.credit.entity.DataQualityEntity;
import com.py.framework.core.common.Page;

/**
 * 
 * @Function 数据质量报告service
 * @ClassName DataQualityService
 * @Date 2018年7月11日 上午10:22:07
 * @Author Min DongXv
 * 
 */
public interface DataQualityService {

	/**
	 * 
	 * @Function 分页查询数据质量报告
	 * @FileName DataQualityService.java
	 * @MethodName dataQualityListByConditionForPage
	 * @param columns
	 * @param additionalColumns
	 * @param page
	 * @param condition
	 * @return
	 * @Date 2018年7月11日 下午2:31:39
	 * @Author Min DongXv
	 *
	 */
	List<Map<String, Object>> dataQualityListByConditionForPage(List<String> columns, String[] additionalColumns,
			Page page, String condition);

	/**
	 * 
	 * @Function 获取数据质量报告详情
	 * @FileName DataQualityServiceImpl.java
	 * @MethodName dataQualityDetail
	 * @param dateRange
	 *            期数
	 * @return
	 * @Date 2018年7月11日 下午2:32:28
	 * @Author Min DongXv
	 *
	 */
	DataQualityDetailEntity dataQualityDetail(String dateRange);

	/**
	 * 
	 * @Function 新增数据质量报告记录
	 * @FileName DataQualityService.java
	 * @MethodName addDataQuality
	 * @param entity
	 * @return
	 * @Date 2018年7月11日 下午2:34:53
	 * @Author Min DongXv
	 *
	 */
	int addDataQuality(DataQualityEntity entity);

	/**
	 * 
	 * @Function 新增数据质量报告详情信息
	 * @FileName DataQualityService.java
	 * @MethodName addDataQualityDetail
	 * @param entity
	 * @Date 2018年7月11日 下午2:36:10
	 * @Author Min DongXv
	 *
	 */
	void addDataQualityDetail(DataQualityDetailEntity entity);

	/**
	 *
	 * @Function 逻辑删除数据质量报告
	 * @FileName DataQualityService.java
	 * @MethodName updateDataQuality
	 * @param dateRange
	 * @Date 2018年7月11日 下午2:37:08
	 * @Author Min DongXv
	 *
	 */
	void updateDataQuality(String dateRange);

	/**
	 *
	 * @Function 逻辑删除数据质量报告详情信息
	 * @FileName DataQualityService.java
	 * @MethodName updateDataQualityDetail
	 * @param dateRange
	 * @Date 2018年7月11日 下午2:37:54
	 * @Author Min DongXv
	 *
	 */
	void updateDataQualityDetail(String dateRange);

	/**
	 *
	 * @Function 通过期数获取数据质量报告信息
	 * @FileName DataQualityService.java
	 * @MethodName getDataQualityByDataRange
	 * @param dateRange
	 * @return
	 * @Date 2018年7月11日 下午2:38:44
	 * @Author Min DongXv
	 *
	 */
	DataQualityEntity getDataQualityByDataRange(String dateRange);

	/**
	 *
	 * @Function 下载数据质量报告PDF
	 * @FileName DataQualityService.java
	 * @MethodName pdfDownload
	 * @param fileName
	 * @param dateRange
	 * @Date 2018年7月11日 下午5:25:09
	 * @Author Min DongXv
	 *
	 */
	void pdfDownload(String absolutepath, String fileName, String dateRange, HttpServletResponse response);

	/**
	 * 
	 * @Function 生成数据质量报告
	 * @FileName DataQualityService.java
	 * @MethodName dataQualityReport
	 * @param dateRange
	 * @param response
	 * @param request
	 * @Date 2018年7月16日 下午5:11:29
	 * @Author Min DongXv
	 *
	 */
	void dataQualityReport(String wkpdfToolPath, String absolutepath, String dateRange, HttpServletResponse response,
			HttpServletRequest request);

	/**
	 * 
	 * @Function 创建数据质量报告HTML
	 * @FileName DataQualityService.java
	 * @MethodName createPdfHtml
	 * @param dateRange
	 * @return
	 * @Date 2018年7月31日 下午6:07:10
	 * @Author Min DongXv
	 *
	 */
	String createPdfHtml(String dateRange);

	int getQulityReportNum();

}
